#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:taotieren


"""
    rpi.gpio 需要 root 权限，板上运行需要使用
    sudo python led_strip.py
    使用 LED 灯条
    使用基于 WS2812 RGB LED 芯片的 LED 灯条
    不要使用树莓派的 3.3V 电源引脚给 LED 供电，树莓派的引脚只提供微弱的电流，这样很容易损坏树莓派。
    可以通过 GitHub 下载这个对应的库代码
        git clone https://github.com/pimoroni/unicorn-hat.git
        cd unicorn-hat/python/rpi-ws281x
        make
        sudo python setup.py install
    每个 LED　会消耗 60mA 电流，此例选用　10 个 LED
    GND     GND
    DI      GPIO18
    5V      5V

"""

import time
from neopixel import *

# LED 灯条配置
LED_COUNT = 10  # LED 像素数
LED_PIN = 18  # GPIO 引脚连接到这个像素（主要支持 PWM！）
LED_FREQ_HZ = 800000  # LED 信号频率，单位为赫兹（通常为800Khz）
LED_DMA = 5  # 用于生成信号的 DMA 通道（尝试 5）
LED_BRIGHTNESS = 255  # 设置为 0 表示暗，255 表示最亮
LED_INVERT = False  # 为反转信号为真

RED = Color(255, 0, 0)
NO_COLOR = Color(0, 0, 0)
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS)
strip.begin()


def clear():
    for i in range(0, LED_COUNT):
        strip.setPixelColor(i, NO_COLOR)
    strip.show()


i = 0
while True:
    clear()
    strip.setPixelColor(i, RED)
    strip.show()
    time.sleep(1)
    i += 1
    if i >= LED_COUNT:
        i = 0
